<?php

class Admin_Menu2Controller extends ExtLb_Controller_Action
{
	private $menu2Tbl;
	private $menu1Tbl;
	private $menu2Frm;
	
    public function init()
    {
        $this->loadCss('admin', 'menu2', FOLDER_ROOT_NAME);
        $this->loadLayout('admin', 'layout');
        
        $this->menu2Tbl	= new Admin_Model_Menu2();
        $this->menu1Tbl = new Admin_Model_Menu1s();
        $this->menu2Frm = new Admin_Form_Menu2();
    }

    public function indexAction()
    {
    	if(isset($_GET['search_box_sumit']) && !empty($_GET['search_box_text'])){
    		$selectMenu2 = $this->menu2Tbl->selectMenu2("tenMenu2 like '%".$_GET['search_box_text']."%'");
    	}else{
    		$selectMenu2 = $this->menu2Tbl->selectMenu2();
    	}
    	
    	//
	    //FILTER
	    if(isset($_GET['tbn_filter']) && (int)$_GET['tbn_cate'] != 0){
	    	$selectMenu2 = $this->menu2Tbl->selectMenu2("mn1.menu1Id = ".$_GET['tbn_cate']);
	    }

    	$paginatorMenu2 = new Zend_Paginator(new Zend_Paginator_Adapter_DbSelect($selectMenu2));
    	$paginatorMenu2->setItemCountPerPage(20)
    					->setPageRange(3)
    					->setCurrentPageNumber($this->_getParam('page',1));
    	//
    	//ADD MENU2
    	if(!isset($_GET['edit'])){
	    	$this->menu2Frm->addAction('admin', 'menu2', 'add');
	    	$this->menu2Frm->addSubmitButton('cmdAdd', 'Thêm');
	    	
	    	$this->view->funcFrm = "Thêm menu mới";
    	}else{
    		$this->view->funcFrm = "Thay đổi thông tin menu";
    	}
    	
    	$this->view->paginatorMenu2	= $paginatorMenu2;
    	$this->view->menu2Title = "Thêm menu 2";
    	$this->view->menu1s = $this->menu1Tbl->fetchAllMenu1();
    	$this->view->menu2Frm = $this->menu2Frm;
    	
    	if (isset($_GET['cmdDel']) && !empty($_GET['menu2-check'])) {
    		$this->_forward('delete','menu2','admin');
    	}
    }

    public function addAction(){
    	if($this->menu2Frm->isValid($this->_request->getPost())){
    		if(isset($_POST['cmdAdd'])){
    			$tenMenu2 = $this->_getParam('txtName');
    			$menu1Id  = $this->_getParam('cbbMenu1');
    			$dichVu	  = $this->_getParam('cbbIsService');
    			
    			try {
    				$this->menu2Tbl->addMenu2($tenMenu2, $menu1Id, $dichVu);
    				$this->jDialogMessage("Thông báo", "Thành công!!!");	
    			} catch (Exception $e) {
    				$this->jDialogMessage("Thông báo","Có lỗi xảy ra trong quá trình xử lý. Hãy thử lại với tên khác!!.");
    			}
    			
    			$this->_forward('index','menu2','admin');
    			$this->_request->clearParams();
    		}
    		// === redirect to deleteAction if multi del
    	}else if(isset($_GET['cmdDel'])){
    		$this->_forward('delete','menu2','admin');
    	}else{
    		$this->_redirect('admin/menu2/');
    	}
    }
    
    public function  editAction(){
    	//EDIT
    	if($this->menu2Frm->isValid($this->_request->getPost())){
    		if (isset($_POST['cmdEdit'])) {
    			$tenMenu2 = $this->_getParam('txtName');
    			$menu1Id  = $this->_getParam('cbbMenu1');
    			$dichVu	  = $this->_getParam('cbbIsService');
    			$menu2Id  = $this->_getParam('txtId');
    			
    			try {
    				$this->menu2Tbl->updateMenu2($tenMenu2, $menu1Id, $dichVu,$menu2Id);
    				$this->jDialogMessage("Thông báo", "Thành công!!!");	
    			} catch (Exception $e) {
    				$this->jDialogMessage("Thông báo","Có lỗi xảy ra trong quá trình xử lý. Hãy thử lại!!.");
    			}
    			
    			$this->_forward('index','menu2','admin');
    			$this->_request->clearParams();
    		}
    		//
    		//GET INFO TO EDIT
    	}elseif(!empty($_GET['mn']) && isset($_GET['edit'])){
    		$menu = $this->menu2Tbl->fetchRowMenu2($_GET['mn']);
    		
    		$this->menu2Frm->addAction('admin', 'menu2', 'edit');
    		$this->menu2Frm->addSubmitButton('cmdEdit', 'Cập nhập');
    		$this->menu2Frm->addHiddenId('txtId', $_GET['mn']);
    		
    		$this->menu2Frm->getElement('txtName')->setValue($menu['tenMenu2']);
    		$this->menu2Frm->getElement('cbbMenu1')->setValue($menu['menu1Id']);
    		$this->menu2Frm->getElement('cbbIsService')->setValue($menu['dangKyDV']);
    		
    		$this->view->menu2Frm = $this->menu2Frm;
	    	}else{
	    		$this->_redirect('admin/menu2/');
	    	}
    }

    public function deleteAction(){
    	//
    	//DEL ONE RECORD
    	if(isset($_GET['del']) && !empty($_GET['mn'])){
    		try {
    			$this->menu2Tbl->deleteMenu2($_GET['mn']);
    			$this->jDialogMessage("Thông báo", "Thành công!!!");	
    		} catch (Exception $e) {
    			$this->jDialogMessage("Thông báo","Có lỗi xảy ra trong quá trình xử lý. Hãy thử lại!!.");
    		}
    	}
    	
    	//DEL MULTI RECORD
    	if(isset($_GET['cmdDel']) ){
        	$arrDataDel = $_GET['menu2-check'];

        	try {
	        	for($i =0; $i< count($arrDataDel); $i++){
	        		$this->menu2Tbl->deleteMenu2($arrDataDel[$i]);
	        	}	
        	} catch (Exception $e) {
        		$this->jDialogMessage("Thông báo","Có lỗi xảy ra trong quá trình xử lý. Hãy thử lại!!.");
        	}
        	
        	$this->_redirect('/admin/menu2/');
        }
        
        $this->_forward('index','menu2','admin');
    }
    
    public function serviceAction(){
		if (isset($_GET['true']) && !empty($_GET['s'])) {
			try {
				$this->menu2Tbl->updateCustomMenu2(array('dangKyDV'=> '1'), 'menu2Id ='.$_GET['s']);
				$this->jDialogMessage("Thông báo","Đã kích hoạt");	
			} catch (Exception $e) {
				$this->jDialogMessage("Thông báo","Có lỗi xảy ra trong quá trình xử lý. Hãy thử lại!!.");
			}
			
			$this->_forward('index','menu2','admin');
		}elseif (isset($_GET['false']) && !empty($_GET['s'])) {
			try {
				$this->menu2Tbl->updateCustomMenu2(array('dangKyDV'=> '0'), 'menu2Id ='.$_GET['s']);
				$this->jDialogMessage("Thông báo", "Đã hủy mục dịch vụ");	
			} catch (Exception $e) {
				$this->jDialogMessage("Thông báo","Có lỗi xảy ra trong quá trình xử lý. Hãy thử lại!!.");
			}

			$this->_forward('index','menu2','admin');
		}else{
			$this->_redirect('admin/menu2/');
		}
    }
}

